// 节流函数
export const debounce = (fn: Function, delay: number) => {
  let timer: any;
  return function () {
    if (timer) {
      clearTimeout(timer);
    }
    timer = setTimeout(() => {
      fn();
    }, delay);
  };
};

// 响应式(pc端) 根据屏幕宽度计算并设置根元素的字体大小 以 PC端 1920 设计稿 20px 为根字号
export const pcAdjustFontSize = (windowWidth: number) => {
  const scale = windowWidth / 1920;
  const baseFontSize = 20;
  return baseFontSize * scale;
};

// 响应式(移动端) 根据屏幕宽度计算并设置根元素的字体大小 以 移动端 375 设计稿 20px 为基础字号
export const mbAdjustFontSize = (windowWidth: number) => {
  // 计算出 375设计稿对应20px 到 750设计稿对应24px 每增加1像素宽度，字体大小增加的比例
  const scale = (24 - 20) / (750 - 375);
  return 20 + scale * (windowWidth - 375);
};

// 监听响应式
export function adjustFontSize() {
  const windowWidth = window.innerWidth;
  const newFontSize =
    windowWidth >= 1024
      ? pcAdjustFontSize(windowWidth)
      : mbAdjustFontSize(windowWidth);
  console.log("当前字号", newFontSize);
  document.documentElement.style.fontSize = newFontSize + "px";
}
